/**
 * 
 */
package com.alstudio.module.xmpp.protocol.xmpp.parser.iq.voip;

import android.text.TextUtils;

import com.alstudio.module.xmpp.protocol.xmpp.ALXmppEventListener;
import com.alstudio.module.xmpp.protocol.xmpp.packact.ALIQ;
import com.alstudio.module.xmpp.protocol.xmpp.parser.iq.ALBaseIQParser;
import com.alstudio.module.xmpp.protocol.xmpp.parser.iq.IQParseEventHandler.IQXmlParseEventCallback;
import com.alstudio.pojo.module.dating.DatingUser;
import com.alstudio.utils.formater.numeric.ALNumericUtils;
import com.alstudio.utils.log.ALLog;

/**
 * 解析邂逅
 * 
 * @author alonso lee
 * 
 */
public class EnterXiehouParser extends ALBaseIQParser implements
		IQXmlParseEventCallback {

	private boolean hasMore = false;
	private DatingUser user;

	@Override
	public void parseIQPackage(ALIQ packact, String stream,
			ALXmppEventListener listener) throws Exception {
		// TODO Auto-generated method stub
		code = 0;
		hasMore = false;
		mListener = listener;
		user = null;
		startParse(packact, stream, this);
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see
	 * com.alstudio.module.xmpp.protocol.xmpp.parser.iq.IQParseEventHandler.
	 * IQXmlParseEventCallback#processErrorStartTag(java.lang.String)
	 */
	@Override
	public void processErrorStartTag(String tag) {
		// TODO Auto-generated method stub
		if (tag.equals(ERROR_CODE_TAG)) {
			code = ALNumericUtils.parseInt(getAttValue("code"), 0);
		}
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see
	 * com.alstudio.module.xmpp.protocol.xmpp.parser.iq.IQParseEventHandler.
	 * IQXmlParseEventCallback#processSetStartTag(java.lang.String)
	 */
	@Override
	public void processSetStartTag(String tag) {
		// TODO Auto-generated method stub

	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see
	 * com.alstudio.module.xmpp.protocol.xmpp.parser.iq.IQParseEventHandler.
	 * IQXmlParseEventCallback#processGetStartTag(java.lang.String)
	 */
	@Override
	public void processGetStartTag(String tag) {
		// TODO Auto-generated method stub

	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see
	 * com.alstudio.module.xmpp.protocol.xmpp.parser.iq.IQParseEventHandler.
	 * IQXmlParseEventCallback#processResultStartTag(java.lang.String)
	 */
	@Override
	public void processResultStartTag(String tag) {
		// TODO Auto-generated method stub
		if (tag.equals(ITEMS_TAG)) {
			String tmp = getAttValue("more");
			if (!TextUtils.isEmpty(tmp) && tmp.equals(TRUE)) {
				hasMore = true;
			}
		} else if (tag.equals(ITEM_TAG)) {
			user = new DatingUser();
			// jid
			user.setJid(getAttValue(JID_TAG));
			// 昵称
			user.setNick(getAttValue(NICK_TAG));
			// 性别
			user.setSex(getAttValue(SEX_TAG));
			// 头像
			user.setImageFileId(getAttValue(PHOTO_TAG));
			// 在线时间
			user.setLastLoginTimeStamp(ALNumericUtils.parseLong(
					getAttValue(LAST_ONLINE_TAG), 0));
			// 年龄
			user.setAge(getAttValue(AGE_TAG));
			// 省会
			user.setProvince(getAttValue(PROVICE_TAG));
			// 城市
			user.setCity(getAttValue(CITY_TAG));
			// 魅力
			user.setGlamour(getAttValue(GLAMOUR_TAG));

			// vip级别
			user.setViplevel(ALNumericUtils.parseInt(
					(getAttValue(VIP_LEVEL_TAG)), 0));
			// 金币
			user.setGold(getAttValue(GOLD_TAG));

			// 好友关系
			user.setIsfriend(getAttValue(IS_FRIEND_TAG));

			// 特殊关系
			user.setIsfriend(getAttValue(IS_SPECIAL_TAG));
			// V认证状态
			user.setVauthed(ALNumericUtils
					.parseInt(getAttValue(VAUTHED_TAG), 0));
			// 签名
			user.setSignature(getAttValue(SIG_TAG));
			// 积分，用于女神榜
			user.setPoints(getAttValue(POINTS_TAG));
			// 级别
			user.setStarState(ALNumericUtils.parseInt(getAttValue(STAR_TAG), 0));

			user.setCallPrice(getAttValue(CALL_PRICE_TAG));
			ALLog.d("呼叫价格" + user.getCallPrice());

			ALLog.d("添加" + user.getNick());

		}
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see
	 * com.alstudio.module.xmpp.protocol.xmpp.parser.iq.IQParseEventHandler.
	 * IQXmlParseEventCallback#processEndTag(java.lang.String)
	 */
	@Override
	public void processEndTag(String tag) {
		// TODO Auto-generated method stub

	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see
	 * com.alstudio.module.xmpp.protocol.xmpp.parser.iq.IQParseEventHandler.
	 * IQXmlParseEventCallback#processStartDocument()
	 */
	@Override
	public void processStartDocument() {
		// TODO Auto-generated method stub

	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see
	 * com.alstudio.module.xmpp.protocol.xmpp.parser.iq.IQParseEventHandler.
	 * IQXmlParseEventCallback#processEndDocument()
	 */
	@Override
	public void processEndDocument() {
		// TODO Auto-generated method stub
		onCallback();
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see
	 * com.alstudio.module.xmpp.protocol.xmpp.parser.iq.ALBaseIQParser#onCallback
	 * ()
	 */
	@Override
	public void onCallback() {
		// TODO Auto-generated method stub
		if (mListener != null) {
			mListener.onGetXiehouResult(code, hasMore, user);
		}
	}

}
